package com.ruantu.clothing.dao;

import com.ruantu.clothing.entity.*;
import org.apache.ibatis.annotations.Select;
import org.omg.CORBA.OBJ_ADAPTER;

import java.util.List;
import java.util.Map;

public interface ProductionMapper {
    int deleteByPrimaryKey(String id);

    int insert(Production record);

    int insertSelective(Production record);

    Production selectByPrimaryKey(String id);

    int updateByPrimaryKeySelective(Production record);

    int updateByPrimaryKeyWithBLOBs(Production record);

    int updateByPrimaryKey(Production record);

    /**
     * 查询所有商品
     *
     * @param map
     * @return
     */
    List<Production> findAll(Map<String, Object> map);

    /**
     * 查询所有商品导出excel用
     *
     * @param map
     * @return
     */
    List<Production> findAllForExcel(Map<String, Object> map);


    int findAllCount(Map<String, Object> map);

    /**
     * 更新商品状态
     *
     * @return
     */
    int updateState(Production record);

    /**
     * 批量新增商品
     *
     * @param list
     * @return
     */
    int insertSome(List<Production> list);

    /**
     * @param production
     * @return
     */
    int delProduction(Production production);

    /**
     * 查询款式页面combobox
     *
     * @return
     */
    List<Combobox> findKuanshi(Map<String, Object> maps);

    /**
     * 查询品牌页面combobox
     *
     * @return
     */
    List<Combobox> findPinpai(Map<String, Object> maps);

    /**
     * 查询季节页面combobox
     *
     * @return
     */
    List<Combobox> findJijie(Map<String, Object> maps);

    /**
     * 查询款型页面combobox
     *
     * @return
     */
    List<Combobox> findKuanxing(Map<String, Object> maps);

    /**
     * 查询安全级别页面combobox
     *
     * @return
     */
    List<Combobox> findAnquanjibie(Map<String, Object> maps);

    /**
     * 查询小类页面combobox
     *
     * @return
     */
    List<Combobox> findXiaolei(Map<String, Object> maps);

    /**
     * 查询执行标准页面combobox
     *
     * @return
     */
    List<Combobox> findZhixingbiaozhun(Map<String, Object> maps);

    /**
     * 查询颜色页面combobox
     *
     * @return
     */
    List<Combobox> findColors(Map<String, Object> maps);

    /**
     * 查询尺码页面combobox
     *
     * @return
     */
    List<Combobox> findSizes(Map<String, Object> maps);

    /**
     * 查询大类页面combobox
     *
     * @return
     */
    List<Combobox> findDalei(Map<String, Object> maps);

    /**
     * 查询性别页面combobox
     *
     * @return
     */
    List<Combobox> findSex(Map<String, Object> maps);

    /**
     * 查询是否存在此款号
     *
     * @return
     */
    int findByProduct(Production production);

    /**
     * 根据id查询
     *
     * @return
     */
    Production findById(Production production);

    /**
     * 查询所有商品combobox
     *
     * @param production
     * @return
     */
    List<Production> findProductCombobox(Production production);

    /**
     * 根据裁剪id查询款号详细数据
     *
     * @param production
     * @return
     */
    List<Production> findProductByTailorId(Production production);

    /**
     * 查询是否被裁剪引用
     *
     * @return
     */
    int findTailor(Production production);

    /***
     * 获得所有款号不分页 销售用
     * @param map
     * @return
     */
    public List<Production> findAllForJG(Map<String, Object> map);

    public List<Production> findAllProductForChuKuId(Map<String, Object> map);//出库退货

    /**
     * 查询所有总部的商品
     *
     * @return
     */
    List<Production> findProductComboboxZongbu();

    /**
     * 次品厂入库combobox
     *
     * @return
     */
    List<Production> findCipinForProduct();

    /**
     * 查询零售款号
     *
     * @param map
     * @return
     */
    List<ProductionDetails> findSaleProductCode(Map<String, Object> map);


    /**
     * 根据商品code查询详细数据零售开单用
     *
     * @param sale
     * @return
     */
    Sale findSaleByProductionDetailsId(Sale sale);


    /***
     *根据退货客户Id获得所有完成单商品
     *
     */

    List<Production> selectChuKuProductForKeHuId(Map<String, Object> map);

    /***
     * 获得商品属性
     * @return
     */
    @Select("select DISTINCT pinpai from production where jg_id=1 or jg_id=#{jgId} ")
    List<YearAndSeason> selectAllAttrPinPai(Map<String, Object> map);

    @Select("select DISTINCT year from production where jg_id=1 or jg_id=#{jgId} order by year-0 desc")
    List<YearAndSeason> selectAllAttrYear(Map<String, Object> map);

    @Select("select DISTINCT season from production where jg_id=1 or jg_id=#{jgId}")
    List<YearAndSeason> selectAllAttrSeason(Map<String, Object> map);
}
